namespace TaskFramework.Tests
{
    public class FetchTradesRequest
    {
        public FetchTradesRequest(int batchSize)
            : this(batchSize, 0, RouteType.RouteRequestInBatchAndSetRouteCountToZero, 0)
        {
        }

        public FetchTradesRequest(bool throwException)
        {
            BatchSize = 0;
            ThrowException = throwException;
        }

        public FetchTradesRequest(int batchSize, int remainingRouteCount, RouteType routeType, int millisecondDelay)
        {
            BatchSize = batchSize;
            RemainingRouteCount = remainingRouteCount;
            RouteType = routeType;
            MillisecondDelay = millisecondDelay;
        }

        public int BatchSize { get; private set; }

        public bool ThrowException { get; private set; }

        public int RemainingRouteCount { get; private set; }

        public RouteType RouteType { get; private set; }

        public int MillisecondDelay { get; private set; }

        public override string ToString()
        {
            return string.Format("BatchSize = {0}, RemainingRouteCount = {1}, RouteType = {2}, MillisecondDelay = {3}, ThrowException = {4}", 
                BatchSize, RemainingRouteCount, RouteType, MillisecondDelay, ThrowException);
        }
    }
}